﻿using System.Collections.Generic;
using IQIGame.Onigao.GamePlay;

namespace IQIGame.Onigao.Logic
{
    public abstract class FormulaFunction
    {
        public abstract EFormulaFunctionType funcType { get; }
        public abstract void Calculate(Stack<IFormulaOperand> rCalopd, IFormulaObject rSelf, IFormulaObject rTarget, Formula rFromFormula);
    }
    
    //战斗公式中的函数
    public enum EFormulaFunctionType
    {
        None,
        
        Min,
        Max,
        Clamp,
        Abs,
        Sqrt,
        Floor,
        Ceil,
        Round,
        If,
        FNum,
        FBool,
        
        bRand,
        bBuffStack,
        bCustomInt,
        bSkill,
        bTeam,
        bMaxAttribute,
        bCustomProperty,
        bBackstab,
        bDistance,
        
            
        MAXCOUNT,
    } 
}